Motor control system for a self-calibrating multi-camera alignment system

ABSTRACT

Embodiments include a method for autonomous camera pod tracking of a vehicle during vehicle alignment. The method can include receiving, at a processor of an autonomous camera pod, at least one of vehicle target image data from a vehicle target camera or calibration target image data from a calibration camera, the vehicle target camera being adapted to acquire images of a target mounted to the vehicle, and the calibration camera being adapted to acquire images of a calibration target mounted to a sister autonomous camera pod. An optimal location of the autonomous camera pod can be calculated based on the received vehicle target image data or calibration target image data. The method can include transmitting, when it is determined to move the autonomous camera pod, a motor command to a motor drive of the autonomous camera pod, thereby causing the autonomous camera pod to move to the optimal location.

RELATED APPLICATIONS

The present application claims priority to U.S. Provisional ApplicationNo. 61/867,283, entitled “Improved Motor Control System For ASelf-Calibrating Multi-Camera Alignment System,” filed Aug. 19, 2013,and U.S. patent application Ser. No. 14/463,599, entitled “Motor ControlSystem For A Self-Calibrating Multi-Camera Alignment System” filed Aug.19, 2014 which are incorporated herein by reference in there entirety.

FIELD

Embodiments relate generally to machine vision vehicle wheel alignmentsystems and methods, and more particularly to machine vision alignmentsystems having movable cameras that continuously self-calibrate theirposition relative to that of vehicle-mounted targets.

BACKGROUND

Machine vision vehicle alignment systems using movable cameras andtargets attached to vehicle wheels are well known. The targets areviewed by the cameras such that image data obtained for a prescribedalignment process can be used to calculate vehicle alignment angles fordisplay through a user interface, usually a computer monitor. Earlysystem implementations included rigid beams that connected the camerasso that their position and orientation with respect to each other couldbe determined and be relied upon as unchanging. Later systemimplementations were introduced comprising the use of cameras notrigidly connected to each other, but using a separate camera/targetsystem to continuously calibrate the position of one vehicle mountedtarget viewing camera to another. This type of system is described inU.S. Pat. Nos. 6,931,340, 6,959,253 and 6,968,282, all of which arehereby incorporated by reference herein.

Real time alignment reading response is necessary for effectiveoperation of an alignment system. Accordingly, a need exists for asystem that tracks the movement of the vehicle mounted targets andresponds quickly and smoothly with corresponding movements of theviewing cameras, with the goal of maintaining optimal field of view.Further, a need exists for the camera control process not to slow theoverall system performance or place extra demand on core systemprocessing.

There is also a need to provide additional safety features to preventinjury to the user who might come into contact with moving cameraassemblies.

Finally, there is a need to extend the functional life of the system byproviding component diagnostics and optimal operation control.

SUMMARY

One or more embodiments can include a vehicle alignment system utilizingcamera pods adapted to autonomously track a vehicle. The systemcomprises first and second supporting tracks. A first autonomous camerapod is mounted to the first track to move autonomously along a firstlength of the first track. The first autonomous camera pod comprises afirst motor drive adapted to move the first autonomous camera pod alongthe first length of the first track, a first camera adapted to captureimage data of a first target mounted to the vehicle, the first cameragenerating first image data, a calibration target disposed in a fixedrelationship to the first camera, and a first data processor.

A second autonomous camera pod is mounted to the second track to moveautonomously along a second length of the second track. The secondautonomous camera pod comprises a second motor drive adapted to move thesecond autonomous camera pod along the second length of the secondtrack, a second camera adapted to capture image data of a second targetmounted to the vehicle, the second camera generating second image data,a calibration camera disposed in a fixed relationship to the secondcamera adapted to capture image data of the calibration target, thecalibration camera generating calibration image data, and a second dataprocessor.

The first data processor of the first autonomous camera pod is adaptedto receive the first image data from the first camera, autonomouslydetermine, based at least in part on the first image data, whether tocause the first autonomous camera pod to move along the first length ofthe first track, and transmit, when the first data processor determinesto cause the first autonomous camera pod to move along the first lengthof the first track, a first motor command to the first motor drivethereby causing the first autonomous camera pod to move along the firstlength of the first track. The second data processor of the secondautonomous camera pod is adapted to receive at least one of the secondimage data from the second camera or the calibration image data from thecalibration camera, autonomously determine, based at least in part on atleast one of the second image data or the calibration image data,whether to cause the second autonomous camera pod to move along thesecond length of the second track, and transmit, when the second dataprocessor autonomously determines to cause the second autonomous camerapod to move along the second length of the second track, a second motorcommand to the second motor drive, thereby causing the second autonomouscamera pod to move along the second length of the second track.

Embodiments can further include a method for tracking a vehicle duringvehicle alignment. The method comprises providing a vehicle alignmentsystem comprising first and second supporting tracks, a first autonomouscamera pod mounted to the first track and comprising a first motor driveand a first camera to image a first target mounted to the vehicle, and asecond autonomous camera pod mounted to the second track and comprisinga second motor drive, a second camera, and a calibration camera.

The method further comprises acquiring, by the first camera, an image ofthe first target mounted to the vehicle; receiving, at a first dataprocessor of the first autonomous camera pod, first image data from thefirst camera; calculating, at the first data processor, a first optimallocation of the first autonomous camera pod; determining, at the firstdata processor, whether to move the first autonomous camera pod; andtransmitting, by the first data processor, when the first data processordetermines to move the first autonomous camera pod, a first motorcommand to the first motor drive thereby causing the first autonomouscamera pod to move along a first length of the first track to the firstoptimal location.

The method further comprises acquiring, by the second camera, an imageof a second target mounted to the vehicle or, by the calibration camera,an image of a calibration target mounted to the first autonomous camerapod; receiving, at a second data processor of the second autonomouscamera pod, second image data from the second camera or calibrationimage data from the calibration camera; calculating, at the second dataprocessor, an optimal location of the second autonomous camera pod basedon the received second image data or calibration image data;determining, at the second data processor, whether to move the secondautonomous camera pod; and transmitting, by the second data processor,when the second data processor determines to move the second autonomouscamera pod, a second motor command to the second motor drive therebycausing the second autonomous camera pod to move along a second lengthof the second track to the second optimal location.

Embodiments can further comprise a non-transitory computer readablemedium having instructions stored thereon that, when executed by aprocessor of an autonomous camera pod mounted to a supporting track,cause the processor to track a vehicle during vehicle alignment, theautonomous camera pod being mounted to the track to move along a lengthof the track. The tracking comprises receiving at least one of vehicletarget image data from a vehicle target camera or calibration targetimage data from a calibration camera, the vehicle target camera beingadapted to acquire images of a target mounted to a vehicle, thecalibration camera being adapted to acquire images of a calibrationtarget mounted to a sister autonomous camera pod; calculating an optimallocation of the autonomous camera pod based on the received vehicletarget image data or calibration target image data; determining,responsive to the calculating, whether to move the autonomous camerapod; and

transmitting, when it is determined to move the autonomous camera pod, amotor command to a motor drive of the autonomous camera pod, therebycausing the autonomous camera pod to move along the length of the trackto the optimal location.

Objects and advantages of embodiments of the disclosed subject matterwill become apparent from the following description when considered inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments will hereinafter be described in detail below with referenceto the accompanying drawings, wherein like reference numerals representlike elements. The accompanying drawings have not necessarily been drawnto scale. Where applicable, some features may not be illustrated toassist in the description of underlying features.

FIG. 1 is a schematic top plan view of a conventional 3D motor vehiclealignment system.

FIG. 2 is a front perspective view diagrammatically illustrating anexemplary alignment system according to various embodiments.

FIGS. 3A and 3B are perspective views diagrammatically illustratingexemplary camera pods according to various embodiments.

FIG. 3C is a perspective view diagrammatically illustrating an exemplaryslide car of a camera pod according to various embodiments.

FIG. 4 is a perspective view diagrammatically illustrating an exemplarybase tower assembly according to various embodiments.

FIG. 5 is a block diagram of an exemplary vehicle alignment system inaccordance with the disclosure.

FIG. 6 is a flow chart illustrating an exemplary method of targettracking according to an embodiment of the disclosed subject matter.

FIG. 7 is a flow chart illustrating an exemplary method according to anembodiment of the disclosed subject matter.

DETAILED DESCRIPTION

It should be understood that the principles described herein are notlimited in application to the details of construction or the arrangementof components set forth in the following description or illustrated inthe following drawings. The principles can be embodied in otherembodiments and can be practiced or carried out in various ways. Also,it is to be understood that the phraseology and terminology used hereinis for the purpose of description and should not be regarded aslimiting.

This disclosure describes embodiments of a vehicle alignment systemcomprising cameras not rigidly fixed with respect to each other andoriented to view vehicle wheel mounted targets for the purpose ofcalculating wheel alignment angles.

Real time processing speed is critical to the function of an alignmentsystem, so that there is no discernible delay to the user betweensuspension adjustment and display results. It is advantageous tominimize any extra processing in support of this goal. According to oneaspect of this disclosure, on board processing capability of the camerasis used to direct the movement of the camera assembly to maintainoptimal field of view of the wheel mounted targets.

Movement control of the cameras requires tracking of the wheel mountedtargets to maintain an optimal field of view. If one or more of thetargets is not visible to the controlling cameras for any reason, thesystem can become disoriented and tracking control lost. According toanother aspect of this disclosure, a plane can be determined describingthe orientation of all targets so that if the view of one or moretargets is lost, the system can maintain tracking control so long as onetarget remains visible.

Personnel safety is critical, especially when a system is underautomated movement control, as in the case of camera assemblies trackingtargets. According to another aspect of this disclosure, camera assemblymovement is stopped if a predetermined increase in movement resistanceis encountered, indicating the possibility of a user blocking themovement. In a further aspect, for safety the system detects manualmovement of a camera assembly by a user and locks the system from anyautomated movement for a predetermined time period.

System reliability is also of critical importance to the user. Accordingto a further aspect of this disclosure, the useful life of the electricmotor driving the camera assembly movement is extended by implementingsoft start/stop through logic embedded in a motor control board. In afurther aspect, an increase in camera assembly movement resistance isdetected and displayed to the user with a message that service isrequired. This can prevent system or component failure which could occurif the problem is not addressed in a timely manner. The same diagnosticand reporting process can be extended to any data measurable by themotor control board.

Movement coordination between the cameras viewing the wheel mountedtargets is necessary to maintain field of view to the targets andbetween cameras. Another aspect of this disclosure is the designation ofa single master camera assembly that views the second camera assemblyand controls its movement so that independent calibration and controlare not required.

FIG. 1 is a schematic top plan view of certain elements of aconventional computer-aided, 3D motor vehicle wheel alignment system(“aligner”), such as disclosed in U.S. Pat. No. 6,968,282 discussedherein above. This aligner has elements in common with the presentlydisclosed aligner, which elements will now be described. The aligner ofFIG. 1 generally comprises a left camera module 2 and a right cameramodule 4 that are used to align wheels of a motor vehicle. The terms“left” and “right” are used for convenience, and are not intended torequire a particular element to be located in a particular location orrelationship with respect to another element.

Arrow 30 schematically represents a motor vehicle undergoing alignment.The vehicle includes left and right front wheels 22L, 22R and left andright rear wheels 24L, 24R. An alignment target 80 a, 80 b, 80 c, 80 dis secured to each of the wheels 22L, 22R, 24L, 24R, respectively. Eachalignment target generally comprises a plate 82 on which targetinformation is imprinted and a clamping mechanism 88 for securing thetarget to a wheel.

The left camera module 2 comprises a left alignment camera 10L and acalibration camera 20. Left alignment camera 10L faces the vehicle andviews the left side targets 80 a, 80 b along axis 42. Camera 10L isrigidly mounted to left rigid mount 12. A calibration camera 20 facesthe right camera module 4 and views a calibration target 16 along axis46. The calibration camera 20 also is affixed rigidly to mount 12. Inthis exemplary embodiment, calibration camera 20 is illustrated asforming a part of left camera module 2. However, the calibration camera20 also may be configured as part of right camera module 4, in whichcase its view would be directed leftward toward left camera module 2.

Right camera module 4 comprises a right camera 10R that faces thevehicle and functions as a second alignment camera in a 3D alignmentsystem. Right camera 10R is affixed to a rigid camera mount 14.Calibration target 16 is rigidly affixed to camera mount 14 in aposition visible to calibration camera 20 along axis 46.

Calibration camera 20 and left camera 10L are fixed in pre-determined,known positions. Similarly, right camera 10R and calibration target 16are fixed in pre-determined, known positions. Thus, the relativeposition of calibration camera to left camera 10L is known, and therelative position of right camera 10R to calibration target 16 is alsoknown.

For illuminating the calibration target 16 and wheel targets 80 a-80 d,left camera module 2 and right camera module 4 further may compriselight sources 62, 64, 66. A first light source 62 is alignedperpendicular to axis 46 to direct light along that axis to illuminatecalibration target 16; a second light source 64 is aligned perpendicularto axis 42 to direct light along that axis to illuminate left side wheeltargets 80 a, 80 b; and a third light source 66 is aligned perpendicularto axis 44 to direct light along that axis to illuminate right sidewheel targets 80 c, 80 d. Each of the light sources 62, 64, 66 cancomprise a plurality of light-emitting diodes (LEDs); however, any otherlight source may be used.

Exemplary imaging alignment systems according to the present disclosurewill now be described with reference to FIGS. 2-7. In an exemplaryembodiment shown in FIGS. 2-7, a portable vehicle alignment system 100comprises a pair of base tower assemblies 105 a, 105 b, each base towerassembly 105 a, 105 b comprising a pedestal 110 a, 110 b, a columnartower 115 a, 115 b removably attachable to a top portion of the pedestal110 a, 110 b to extend substantially vertically upward from the pedestal110 a, 110 b, and a camera pod 120 a, 120 b mounted to move along alength of the tower 105 a, 105 b. System 100 further comprises a dataprocessor 125 for processing image data from the camera pods 120 a, 120b, and in certain embodiments having a built-in wireless communicationdevice 130. Data processor 125 comprises, for example, a conventionalpersonal computer (PC). Likewise, the wireless communication devicesreferred to herein are conventional devices known to those of skill inthe art; for example, devices using standard Bluetooth communicationsprotocol. Data processor 125 is used, for example, to display thealignment readings to a user and/or calculate alignment values.

Referring now to FIG. 3A, a first one of the camera pods 120 a comprisesa first camera 135 for capturing image data of a first target, such astarget 80 a mounted on a vehicle 30 as shown in FIG. 1. First camera pod120 a also comprises a calibration target 140 disposed in a fixedrelationship to the first camera 135. As shown in FIG. 3B, a second oneof the camera pods 120 b comprises a second camera 150 for capturingimage data of a second target, such as target 80 b mounted on vehicle 30as shown in FIG. 1. Second camera pod 120 b also comprises a calibrationcamera 155 disposed in a fixed relationship to the second camera 150 forcapturing images of the calibration target 140. All the cameras 135,150, 155 can be conventional cameras well-known to those of skill in theart; for example, CCD cameras.

As shown in FIG. 3C and FIG. 4, each camera pod 120 a, 120 b has a motordrive 165 to move the pod along the length of the columnar tower 115 a,115 b. In exemplary embodiments, each columnar tower 115 a, 115 bcomprises a bar 170 having a T-shaped cross section, and the bar 170 hasa linear rack of gear teeth 175. Each tower's associated camera pod 120a, 120 b has a slide car 180 for mounting the motor drive 165, andengaging the bar 170 to guide motion of the camera pod 120 a, 120 balong the bar 170. Thus, each columnar tower 115 a, 115 b is asupporting track for its respective camera pod 120 a, 120 b. The motordrive 165 of the associated camera pod has a pinion gear 185 forengaging the rack 175 to drive the camera pod 120 a, 120 b along alength of the bar 170. A conventional DC motor 190 can be used to movethe camera pod 120 a, 120 b up and down the T-shaped bar 170. Slide car180 also has a motor controller 195, such as a circuit board having amicroprocessor, for receiving commands to operate the motor 190 to moveits respective camera pod 120 a, 120 b. The motor controller'smicroprocessor either directly monitors and provides current to motor190 or does so through a supporting motor controller chip.

First camera pod 120 a includes a first camera board 135 a including aprocessor for performing certain method steps disclosed herein below,including processing image data from first camera 135, computing podmovement, and sending commands to the motor controller 195 of camera pod120 a. In certain embodiments, the first camera 135 and the first cameraboard 135 a are integrated; i.e., the camera 135 is mounted to a printedcircuit board having a processor. In certain embodiments a wirelesscommunication device is included on first camera board 135 a forcommunicating with the wireless communication device 130 of dataprocessor 125. Alternatively, those of skill in the art will understandthat the pod's wireless communication device could instead be separatefrom the camera board 135 a. In certain embodiments, the motorcontroller 195 of camera pod 120 a provides power to camera 135 and hasa wired serial communication connection to first camera board 135 a.

Similarly, second camera pod 120 b includes a second camera board 150 aincluding a processor for performing certain method steps disclosedherein below, including processing image data from second camera 150.Second camera pod 120 b further includes a third camera board 155 aincluding a processor for performing certain method steps disclosedherein below, including processing image data from calibration camera155. In certain embodiments, the cameras 150, 155 are each integratedwith their respective camera boards 150 a, 155 a; i.e., each camera ismounted to a printed circuit board having a processor. One of the twocamera boards 150 a, 155 a in the second camera pod 120 a additionallyincludes a processor that receives the processed image data from bothcameras 150, 155, computes pod movement, and sends commands to the motorcontroller 195 of camera pod 120 b, according to the method disclosedherein below.

In certain embodiments a wireless communication device is included onone or both camera boards 150 a, 155 a for communicating with thewireless communication device 130 of data processor 125. Alternatively,those of skill in the art will understand that the pod's wirelesscommunication device could instead be separate from the camera boards.In certain embodiments, the motor controller 195 of camera pod 120 bprovides power to cameras 150 and 155, and has a wired serialcommunication connection to camera boards 150 a and 155 a.

One of the pods 120 a, 120 b is placed on the left side of the vehicle30, and the other is placed on the right side of the vehicle 30. Thefirst and second cameras 135, 150 are oriented to capture images oftargets mounted to a respective side of the vehicle 30 (see FIG. 1). Thetarget images are used to calculate each pod's position in aconventional manner, and mathematically orient objects found by the onecamera in the coordinate system of the other pod, thereby relating thetwo sides of the vehicle.

In a typical alignment system, it is necessary to track the verticallocation of reference points on a vehicle from the level of the shopfloor up to a typical maximum alignment lift height of 9 ft. In thedisclosed system, the cameras move up and down along their uprightassemblies to position the cameras in an optimal location to image thevehicle or any correlated objects attached to the vehicle such as wheeltargets.

The movements of the two camera pods 120 a, 120 b up and down are keptsynchronous by utilizing the calibration camera 155 and calibrationtarget 140, along with wheel target information from the vehicle 30. Incertain disclosed embodiments, the processing of this information allowsthe camera boards 135 a, 150 a, 155 a to adjust the motor speed to keepthe camera pods 120 a, 120 b in sync with each other, and adjust the podspeed to stay in synch with movement of a vehicle lift (not shown) onwhich the vehicle 30 can be carried while the alignment is beingperformed.

In the disclosed system, the pod movement is automated. The pods arepositioned in the optimal locations to image the vehicle with no userintervention. The described architecture was implemented to achieveseveral goals using a wireless interface, including target tracking,safety, maximum component life, and reduced service time.

FIG. 5 is a block diagram of an exemplary embodiment of a vehiclealignment system. System 500 can include the first and second camerapods 120 a, 120 b, which are each mounted to a separate base towerassembly 105 a, 105 b. First camera pod 120 a can include the firstcamera board 135 a including a processor 501 and a memory 502; and thefirst camera 135, which can send image data to first camera board 135 a.The first camera pod 120 a also can include a first motor controller 195a. Camera board 135 a can transmit motor commands to first motorcontroller 195 a.

Second camera pod 120 b can include the second camera board 150 aincluding a processor 503 and a memory 504; the second camera 150, whichcan send image data to second camera board 150 a; the third camera board155 a including a processor 505 and a memory 506; and the third camera155, which can send image data to the third camera board 155 a. Thesecond camera pod 120 b also can include a second motor controller 195b. Second camera board 150 a can transmit motor commands to second motorcontroller 195 b.

In operation, the processor 501 will execute instructions stored on thememory 502 that cause the first camera board 135 a to receive imageinformation from first camera 135, process the image information, andgenerate and transmit motor commands to first motor controller 195 aaccording to the processes shown in FIGS. 6-7 and described below. Theprocessor 505 will execute instructions stored on the memory 506 thatcause the third camera board 155 a to receive image information fromthird camera 155, process the image information, and transmit the imageprocessing results to the second camera board 150 a according to theprocesses shown in FIGS. 6-7 and described below. The processor 503 willexecute instructions stored on the memory 504 that cause the secondcamera board 150 a to receive image information from second camera 150and image processing results from the third camera board 155 a, andgenerate and transmit motor commands to second motor controller 195 baccording to the processes shown in FIGS. 6-7 and described below.

FIG. 6 is a flow chart illustrating an exemplary method of vehicletracking according to an embodiment of the disclosed subject matter. Inone embodiment, the functionality of the flow diagrams of FIG. 6 andFIG. 7 is implemented by software stored in memory or other computerreadable or tangible medium, and executed by a processor. In otherembodiments, the functionality may be performed by hardware (e.g.,through the use of an application specific integrated circuit (“ASIC”),a programmable gate array (“PGA”), a field programmable gate array(“FPGA” etc.), or any combination of hardware and software.

At 602, tracking is initialized. At 604, a tracking camera such ascamera(s) 135 and/or 150 of FIG. 5, or a calibration camera such ascamera 155 of FIG. 5, acquires an image of its corresponding target(s).

At 606, a processor coupled to the camera (for example, processors 501,503, and/or 505 of FIG. 5) processes the camera's image data. Theprocessor can receive the image data from the camera and calculate theposition of each vehicle wheel plane based on the location of thetarget(s) as indicated in the received image data.

At 608, the processor computes pod movement. Computing pod movement caninclude calculating an optimal location of each pod in relationship tothe vehicle or vehicle targets.

At 610, the processor determines to move the autonomous camera pod basedon, for example, the optimal location calculated at 608. At 612, theprocessor sends motor commands to a motor control board of the pod; forexample, motor control boards 195 a and/or 195 b of FIG. 5. The commandscan direct the motor control board to move the pod to the optimallocation through a motor control interface.

At 614, the processor determines that the pod is not to be moved andprocessing continues to 616 where processing ends.

In some embodiments, such as an embodiment including second camera pod120 b in FIG. 5, because both the forward facing camera (e.g., camera150) and the camera facing the other pod (e.g., calibration camera 155)are connected to the motor control board 195 b, information from eachcamera can be used within the second camera pod 120 b to position thepod both optimally for the vehicle and at the same height from theground as the other pod (e.g., pod 120 a of FIG. 5). All of thisactivity can be conducted by processors 503 and 505 within the secondcamera pod 120 b, without requiring the use of wireless communicationfor direction from an outside processing unit, such as data processor125.

In some embodiments, the pods can be controlled directly from an outsideprocessing unit through a wireless interface. In such embodiments, thespeed of the pod response over the wireless is critical to follow amoving vehicle. The microprocessor on the motor control can allow directmeasurement or calculation of motor speed and motor position. In suchembodiments, simple commands are used over the wireless interface, suchas a location or a run speed and run interval. All other informationneeded to achieve the command provided over the wireless interface iscalculated and executed by each pod (e.g., by each pod's the motorcontrol board).

In some embodiments, the speed of each pod can be controlled adaptivelyin response to camera data. In such embodiments, direct control of themotor by the motor control board can allow for greater control of themotor speed. In such embodiments, information from the camera can beused to calculate the speed of the vehicle and match this speed with themotor speed so that the vehicle remains in the view of the camera.Information from the left pod camera that faces the right pod can beused to match the speed between the pods and keep the pods at the sameheight from the ground.

In some embodiments, an optimal positioning of the pods can bedetermined even when one or more reference points or wheel targets arenot visible. Conventionally, the positioning of the cameras on a movablecamera aligner is done by placing the average position of the front andrear target in the center of the camera view by moving the cameras up ordown. If one target is blocked, then the cameras are positioned to viewthe other target at one of the extremes of the cameras' Field of View(FOV) to best enable the blocked target to be found. For example, if therear target is missing, then the cameras are positioned to place thefront target at the bottom of the cameras' FOV to give the most FOV tofind the front target. However, this conventional approach can result insignificant camera movement if a target is temporarily or repeatedlyblocked.

In some embodiments, once all four targets on a vehicle are located, avertical location and orientation representing the position of thevehicle is created. All four wheel targets are related to this virtuallocation. This allows the pods to be optimally and repeatably placed inrelationship to the vehicle as long as at least one target or referencepoint is visible.

The goal of this automated tracking process is to optimally locate twopods in relationship to a vehicle such that all reference points, inthis example wheel targets, are in view of the cameras on the pods. Oncean initial state is established where all reference points are in view,it is desired to maintain the targets in view as the vehicle is moved upand down and when targets are removed or blocked to facilitatemaintenance on the vehicle.

The following disclosed procedure maintains the pods in the correctlocation after the initial state is established. The goal is to maintainoptimal location of the pods at all times so that the user does not haveto wait for the pods to position after, for example, moving the vehicle,removing some of the targets, and/or blocking a target. It is assumedthat at least one target is always visible.

Once the initial state is achieved where all four wheel targets arevisible, the location of each target is recorded. A central location forthe vehicle is established by averaging the location of all wheeltargets. This will be referred to as the vehicle plane. Transformationsfrom each target to the center of the vehicle plane are created. Duringtarget tracking, each of the wheel targets will be assigned a pixellocation on its camera image sensor based on the pixel location of thecenter most dot on the target. The Pods will be moved up and down untilthe pixel location of the front target and the rear target are bothequidistant from the center line of the camera sensor with the reartarget above the center line and the front target below the center line.

If any target or combination of targets (up to 3) is removed or blocked,the vehicle plane is calculated using the transformation from all of theremaining wheel targets. An average vehicle plane is calculated fromthis result. Using the vehicle plane and the missing wheel target'stransformation, the missing wheel target's location is found. The pixellocation of the center dot will then be established for each target(both present and missing) and this will be used to position the podssuch that the pixel location of the front target and the rear target areboth equidistant from the center line of the camera sensor with the reartarget above the center line and the front target bellow the centerline.

FIG. 7 is a flow chart illustrating an exemplary method of vehiclealignment according to an embodiment of the disclosed subject matter.

At 702, vehicle target tracking can be performed, such as, for example,the method of vehicle tracking described above with respect to FIG. 6.

At 703, safety controls can be performed. For example, in someembodiments, motor control is provided within each pod 120 a, 120 b thatprovides several opportunities to improve the safety of this system forthe user. Both pods can move independently of user control. It ispossible for the user to come in contact with a pod or try to physicallymove the pods into a desired position while it is in motion. Safetyfeatures can include, for example, automatic motor stop on stall and/orlock-out of motor control if user manually moves a pod.

In some embodiments, automatic motor stall detection is provided inwhich the microprocessor on the motor control board 195 a, 195 bdirectly monitors the motor current and voltage multiple (e.g.,thousands) of times per second. If a user comes in contact with thepod(s) 120 a, 120 b and resists the pod's motion, this is detectedwithin 100 ms and the pod's motion is stopped.

In certain embodiments, motor control is locked out after physicalmovement of a pod. Using the same methodology described above, themicroprocessor on the motor control board 195 a, 195 b detects if a podis physically moved by the user. If this occurs, control of the motorsis locked out for a predetermined time to allow the user to move out ofcontact with the pod.

At 706, maintenance controls can be performed. In some embodiments, thedirect control of the motor 190 within each pod 120 a, 120 b is used toimprove component life and reduce service time in the event of acomponent failure, by implementing at least one of motor soft start,detection of mechanical drag, on-board motor drive diagnostics, and livespeed calibration.

Motor soft start: The microprocessor on the motor control board 195 a,195 b is used to slowly accelerate and decelerate the motor 190 duringmotor start, motor stop, speed change, and direction change. Thisreduces wear on the motor by reducing the surge current passed throughthe motor coils. This also reduces wear on the gears, mechanicallinkages, and mounting hardware by reducing the acceleration and therebythe force on these components during transient movement conditions.

Detection of mechanical drag: Power consumption of the motor 190 ischaracterized by the microprocessor on its respective motor controlboard 195 a, 195 b. Increase in power consumption beyond an establishedthreshold indicates mechanical drag in the system. The user is notifiedby the microprocessor on the motor control board through the wirelessinterface that this condition is present and the unit is in need ofservice. Excessive drag and/or friction is thereby detected beforedamage to the motor or motor drive components occurs.

On board motor drive diagnostics: The voltages, currents, andtemperatures on the motor control board 195 a, 195 b are measured by themicroprocessor on this board. The overall function of the board andmotor are determined and reported through the user interface of dataprocessor 125 to the user. If a component fails, the user is notified.This reduces trouble shooting time by a technician in the field. Inaddition, all raw diagnostic data is reported through the wirelessinterface for display to aid a technician in troubleshooting the unit.

Live speed calibration: In some motor control systems, it is necessaryto calibrate the motor drive to the motor speed or to directly measurethe motor speed in order to perform controlled and coordinated motormovements. In the disclosed system, it is necessary to coordinate theleft and right pods to maintain the two pods at the same height from theground. The camera system in the left pod (i.e., the pod 120 b with twocameras) is used to calculate the relative speed of the right pod 120 aand automatically calibrate and correct the speed of the left pod 120 bany time the pods are moving. This allows the pods to move together atthe same speed without calibration to the system or direct speedmeasurement. It also allows the system to adapt its speed to compensatefor drag on a pod or wear in the motor system, keeping the two podsmovements synchronized over the life of the product.

It will be appreciated that the method of FIG. 7 can be repeated inwhole or in part, an example of which is provided as step 708. Althoughnot explicitly shown, it will also be appreciated that functionalitydescribed at 702-706 can be performed concurrently and/or in anoverlapping manner.

The present disclosure can be practiced by employing conventionalmaterials, methodology and equipment. Accordingly, the details of suchmaterials, equipment and methodology are not set forth herein in detail.In the previous descriptions, numerous specific details are set forth,such as specific materials, structures, chemicals, processes, etc., inorder to provide a thorough understanding of the present teachings.However, it should be recognized that the present teachings can bepracticed without resorting to the details specifically set forth. Inother instances, well known processing structures have not beendescribed in detail, in order not to unnecessarily obscure aspects ofthe present teachings.

While the foregoing has described several examples, it is understoodthat various modifications may be made therein and that the subjectmatter disclosed herein may be implemented in various forms andexamples, and that the teachings may be applied in numerousapplications, only some of which have been described herein. It isintended by the following claims to claim any and all applications,modifications and variations that fall within the true scope of thepresent teachings.

It will be appreciated that the modules, processes, systems, andsections described above can be implemented in hardware, hardwareprogrammed by software, software instruction stored on a non-transitorycomputer readable medium or a combination of the above. For example, amethod for tracking a vehicle during vehicle alignment can beimplemented, for example, using a processor configured to execute asequence of programmed instructions stored on a non-transitory computerreadable medium. For example, the processor can include, but not belimited to, a personal computer or workstation or other such computingsystem that includes a processor, microprocessor, microcontrollerdevice, or is comprised of control logic including integrated circuitssuch as, for example, an Application Specific Integrated Circuit (ASIC).The instructions can be compiled from source code instructions providedin accordance with a programming language such as Java, C++, C#.net orthe like. The instructions can also comprise code and data objectsprovided in accordance with, for example, the Visual Basic™ language,LabVIEW, or another structured or object-oriented programming language.The sequence of programmed instructions and data associated therewithcan be stored in a non-transitory computer-readable medium such as acomputer memory or storage device which may be any suitable memoryapparatus, such as, but not limited to read-only memory (ROM),programmable read-only memory (PROM), electrically erasable programmableread-only memory (EEPROM), random-access memory (RAM), flash memory,disk drive and the like.

Furthermore, the modules, processes, systems, and sections can beimplemented as a single processor or as a distributed processor.Further, it should be appreciated that the steps mentioned above may beperformed on a single or distributed processor (single and/ormulti-core). Also, the processes, modules, and sub-modules described inthe various figures of and for embodiments above may be distributedacross multiple computers or systems or may be co-located in a singleprocessor or system. Exemplary structural embodiment alternativessuitable for implementing the modules, sections, systems, means, orprocesses described herein are provided below.

The modules, processors or systems described above can be implemented asa programmed general purpose computer, an electronic device programmedwith microcode, a hard-wired analog logic circuit, software stored on acomputer-readable medium or signal, an optical computing device, anetworked system of electronic and/or optical devices, a special purposecomputing device, an integrated circuit device, a semiconductor chip,and a software module or object stored on a computer-readable medium orsignal, for example.

Embodiments of the method and system (or their sub-components ormodules), may be implemented on a general-purpose computer, aspecial-purpose computer, a programmed microprocessor or microcontrollerand peripheral integrated circuit element, an ASIC or other integratedcircuit, a digital signal processor, a hardwired electronic or logiccircuit such as a discrete element circuit, a programmed logic circuitsuch as a programmable logic device (PLD), programmable logic array(PLA), field-programmable gate array (FPGA), programmable array logic(PAL) device, or the like. In general, any process capable ofimplementing the functions or steps described herein can be used toimplement embodiments of the method, system, or a computer programproduct (software program stored on a non-transitory computer readablemedium).

Furthermore, embodiments of the disclosed method, system, and computerprogram product may be readily implemented, fully or partially, insoftware using, for example, object or object-oriented softwaredevelopment environments that provide portable source code that can beused on a variety of computer platforms. Alternatively, embodiments ofthe disclosed method, system, and computer program product can beimplemented partially or fully in hardware using, for example, standardlogic circuits or a very-large-scale integration (VLSI) design. Otherhardware or software can be used to implement embodiments depending onthe speed and/or efficiency requirements of the systems, the particularfunction, and/or particular software or hardware system, microprocessor,or microcomputer being utilized. Embodiments of the method, system, andcomputer program product can be implemented in hardware and/or softwareusing any known or later developed systems or structures, devices and/orsoftware by those of ordinary skill in the applicable art from thefunction description provided herein and with a general basic knowledgeof machine vision vehicle alignment and/or computer programming arts.

Moreover, embodiments of the disclosed method, system, and computerprogram product can be implemented in software executed on a programmedgeneral purpose computer, a special purpose computer, a microprocessor,or the like.

It is, thus, apparent that there is provided, in accordance with thepresent disclosure, improved motor control systems and methods for aself-calibrating multi-camera alignment system. Many alternatives,modifications, and variations are enabled by the present disclosure.Features of the disclosed embodiments can be combined, rearranged,omitted, etc., within the scope of the invention to produce additionalembodiments. Furthermore, certain features may sometimes be used toadvantage without a corresponding use of other features. Accordingly,Applicants intend to embrace all such alternatives, modifications,equivalents, and variations that are within the spirit and scope of thepresent invention.

What is claimed is:
 1. A vehicle alignment system adapted to track avehicle, the system comprising: a first camera pod mounted to moverelative to the vehicle, the first camera pod comprising: a first motordrive adapted to move the first camera pod relative to the vehicle, afirst camera adapted to capture image data of a first target mounted tothe vehicle, the first camera generating first image data, and acalibration target disposed in a fixed relationship to the first camera,a second camera pod mounted to move relative to the vehicle, the secondcamera pod comprising: a second motor drive adapted to move the secondcamera pod relative to the vehicle, a second camera adapted to captureimage data of a second target mounted to the vehicle, the second cameragenerating second image data, and a calibration camera disposed in afixed relationship to the second camera adapted to capture image data ofthe calibration target, the calibration camera generating calibrationimage data, one or more data processors adapted to: receive the firstimage data from the first camera, determine, based at least in part onthe first image data, whether to cause the first camera pod to moverelative to the vehicle, transmit, when the one or more data processorsdetermine to cause the first camera pod to move relative to the vehicle,a first motor command to the first motor drive thereby causing the firstcamera pod to move relative to the vehicle, receive the calibrationimage data from the calibration camera, determine, based at least inpart on the calibration image data, whether to cause the second camerapod to move relative to the vehicle, and transmit, when the one or moredata processors determine to cause the second camera pod to moverelative to the vehicle, a second motor command to the second motordrive, thereby causing the second camera pod to move relative to thevehicle.
 2. The system of claim 1, wherein the vehicle is mounted on alift, and the one or more data processors are adapted to control thefirst and second motor drives to move the first and second camera podswhen the vehicle is raised or lowered on the lift such that the firstand second cameras continuously capture image data of the first andsecond targets, respectively.
 3. The system of claim 2, wherein the oneor more data processors are adapted to maintain the first and secondcamera pods at a substantially equal height from a reference plane basedat least in part on the calibration image data generated by thecalibration camera when the first and second camera pods are moving. 4.The system of claim 1, wherein third and fourth targets are mounted tothe vehicle, the first camera is adapted to capture image data of thethird target, and the second camera is adapted to capture image data ofthe fourth target; wherein the one or more data processors are adaptedto process the image data of the first and third targets from the firstcamera and the second and fourth targets from the second camera,respectively, to generate a vertical location and orientationrepresenting a position of the vehicle, and to move the first and secondcamera pods to an optimal location based on the representation of thevehicle position when only one of the targets is being imaged by one ofthe first and second cameras.
 5. The system of claim 1, wherein thefirst and second motor drives further comprise a first and second motor,respectively.
 6. The system claim 5, wherein the one or more dataprocessors monitor an operating voltage and current of the first andsecond motors, respectively, and stop the respective motor when thevoltage and/or current indicates a predetermined increase in resistanceto a motion of the respective camera pod.
 7. The system of claim 5,wherein the one or more data processors monitor an operating voltage andcurrent of the first and second motors, respectively, and lock outmovement of the respective motor for a predetermined time period whenthe voltage and/or current indicate manual movement of the respectivecamera pod by a user.
 8. The system of claim 5, wherein the one or moredata processors are adapted to limit acceleration and deceleration ofthe first and second motors, respectively, to a predetermined value, toreduce wear on the motors and motor drives.
 9. The system of claim 5,wherein the one or more data processors are adapted to monitor a powerconsumption of the first and second motors, respectively, and to send auser notification, via a wireless interface, when the power consumptionexceeds a predetermined level.
 10. The system of claim 9, wherein theuser notification is a message that service is needed.
 11. The system ofclaim 1, wherein the first and second motor drives further comprise afirst and second motor control board, respectively; and wherein the oneor more data processors are adapted to monitor an operating voltage, anoperating current, and a temperature of the first and second motorcontrol boards, respectively, and to send a notification, via a wirelessinterface, indicating that a component of the respective motor controlboard has failed based on the monitored voltage, current, andtemperature.
 12. The system of claim 1, wherein when the first andsecond camera pods are moving relative to the vehicle, the calibrationimage data from the calibration camera of the second camera pod is usedby the one or more data processors to calculate a relative speed of thefirst camera pod and to adjust a speed of the second camera pod suchthat the first and second camera pods move at substantially the samespeed.
 13. A method for tracking a vehicle during vehicle alignment, themethod comprising: providing a vehicle alignment system comprising: afirst camera pod mounted to move relative to the vehicle and comprisinga first motor drive and a first camera to image a first target mountedto the vehicle, and a second camera pod mounted to move relative to thevehicle and comprising a second motor drive, a second camera, and acalibration camera; acquiring, by the first camera, an image of thefirst target mounted to the vehicle; receiving, at one or more dataprocessors, first image data from the first camera; calculating, at theone or more data processors, a first optimal location of the firstcamera pod; determining, at the one or more data processors, whether tomove the first camera pod; transmitting, by the one or more dataprocessors, when the one or more data processors determines to move thefirst camera pod, a first motor command to the first motor drive therebycausing the first camera pod to move relative to the vehicle to thefirst optimal location; acquiring, by the second camera, an image of asecond target mounted to the vehicle and, by the calibration camera, animage of a calibration target mounted to the first camera pod;receiving, at the one or more data processors, calibration image datafrom the calibration camera; calculating, at the one or more dataprocessors, an optimal location of the second camera pod based at leastin part on the received calibration image data; determining, at the oneor more data processors, whether to move the second camera pod; andtransmitting, by the one or more data processors, when the one or moredata processors determines to move the second camera pod, a second motorcommand to the second motor drive thereby causing the second camera podto move relative to the vehicle to the second optimal location.
 14. Themethod of claim 13, wherein the vehicle is mounted on a lift, and theone or more data processors are adapted to control the first and secondmotor drives to move the first and second camera pods when the vehicleis raised or lowered on the lift such that the first and second camerascontinuously capture image data of the first and second targets,respectively.
 15. The method of claim 13, wherein the first and secondmotor drives comprise a first and second motor, respectively; andwherein the one or more data processors are adapted to monitor anoperating voltage and current of the first and second motors,respectively, and stop the respective motor when the voltage and/orcurrent indicates a predetermined increase in resistance to a motion ofthe respective camera pod.
 16. The method of claim 13, wherein the firstand second motor drives comprise a first and second motor, respectively;and wherein the one or more data processors are adapted to monitor apower consumption of the first and second motors, respectively, and tosend a user notification, via a wireless interface, when the powerconsumption exceeds a predetermined level.
 17. A non-transitory computerreadable medium having instructions stored thereon that, when executedby one or more processors operably connected to a first camera podmounted to move relative to the vehicle, cause the one or moreprocessors to track a vehicle during vehicle alignment, the trackingcomprising: receiving vehicle target image data from a vehicle targetcamera and calibration target image data from a calibration camera, thevehicle target camera being adapted to acquire images of a targetmounted to a vehicle, the calibration camera being adapted to acquireimages of a calibration target mounted to a second camera pod;calculating an optimal location of the first camera pod based at leastin part on the received calibration target image data; determining,responsive to the calculating, whether to move the first camera podrelative to the vehicle; and transmitting, when it is determined to movethe first camera pod, a motor command to a motor drive of the firstcamera pod, thereby causing the first camera pod to move relative to thevehicle to the optimal location.
 18. The non-transitory computerreadable medium of claim 17, wherein the vehicle is mounted on a lift,and the optimal location is calculated such that the transmitting causesthe motor drive to move the first camera pod when the vehicle is raisedor lowered on the lift such that the vehicle target camera continuouslycaptures image data of the vehicle target.
 19. The non-transitorycomputer readable medium of claim 17, wherein the motor drive furthercomprises a motor, the tracking further comprising: monitoring anoperating voltage and current of the motor and stopping the motor whenthe voltage and/or current indicates a predetermined increase inresistance to a motion of the first camera pod.
 20. The non-transitorycomputer readable medium of claim 17, wherein the motor drive comprisesa motor, the tracking further comprising: monitoring a power consumptionof the motor and sending a user notification, via a wireless interface,when the power consumption exceeds a predetermined level.